package ar.uade.distribuidas.tpo.dba.dominio;

import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name = "condicionesFinanciacion")
@PrimaryKeyJoinColumn(name = "id")
public class Financiacion extends CondicionDeVenta {

	private float porcentaje;
	private int plazo;

	@Override
	public float calcularPrecio(float precioBruto) {
		return precioBruto * (1+this.getPorcentaje());
	}

	@Override
	public void setPlazo(int plazo) {
		this.plazo = plazo;
	}

	@Override
	public int getPlazo() {
		return this.plazo;
	}

	@Override
	public String getTipo() {
		return "RECARGO";
	}

	@Override
	public float getPorcentaje() {
		return this.porcentaje;
	}

	@Override
	public void setPorcentaje(float porcentaje) {
		this.porcentaje = porcentaje;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result + plazo;
		result = prime * result + Float.floatToIntBits(porcentaje);
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		Financiacion other = (Financiacion) obj;
		if (plazo != other.plazo)
			return false;
		if (Float.floatToIntBits(porcentaje) != Float.floatToIntBits(other.porcentaje))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Financiacion [porcentaje=" + porcentaje + ", plazo=" + plazo + ", getNombre()=" + getNombre() + "]";
	}

}
